什么是 Example
你可能注意到了,之前的 docs
中在 response
中的 Example Value
中是没有实例的,这个怎么做呢?
答案是使用 Filed
对象,也可以在模型中使用 schema_extra
。
Requests Example Value
Filed
from pydantic import BaseModel,Field
class ss(BaseModel):
name:str = Field(...,example='phyger')
age:int = Field(...,example=18)
@app.post('/ff/')
async def get_ff(ff:ss):
res = {'res':ff}
return res
docs
可以看到,已经有了实例数据
schema_extra
from pydantic import BaseModel,Field
class ss(BaseModel):
name:str
age:int
class Config:
schema_extra = {
"example":{
"name":"phyger678",
"age":20
}
}
@app.post('/ff/')
async def get_ff(ff:ss):
res = {'res':ff}
return res
docs
可以看到,效果已经展现出来了。
Response Example Value
搞定了 Requests 的示例信息,现在我们一起来研究下 Reponse 的示例信息。
代码
from pydantic import BaseModel
class info(BaseModel):
name:str
age:int
@router.post('/test')
def test(info:info):
msg = {"people_info":info}
return msg
效果
你会发现如上的代码在 docs
中是没有 Reponse
的示例信息的。
代码-New
from pydantic import BaseModel
class info(BaseModel):
name:str
age:int
class repMd(BaseModel):
people_info:info
@router.post('/test',response_model=repMd)
def test(info:info):
msg = {"people_info":info}
return msg
效果-New
你会发现,Reponse
的示例数据已经搞定。
这样做有什么用呢?
除了上面我们介绍的可以在 docs
中对接口进行信息的完善和请求体的提示以外。Example
部分还可以对整个项目的重构,以及系统对接,交付测试等起到意想不到的良好效果。
还是建议大家在实际开发过程中,能够添加 Requests
和 Reponse
的示例信息,磨刀不误砍柴工,只有在我们项目的初始阶段就定好规则,大家一起遵守,这样才能做出一个好的产品。
以上都是小编在实际工作中深切体会到的,如果前期没有完善的相关注释和文档,将会为后续的维护和测试等造成很大的困扰。返工的成本远比当时盲目赶工时取得的眼前收益大得多!
做产品还是得脚踏实地,稳步前进!
感谢您的阅读,别忘了关注,点赞,评论,转发四连哟!